﻿// 变更树的遍历顺序 TRAVERSAL.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://algospot.com/judge/problem/read/TRAVERSAL

问题

树的遍历算法按照特定顺序访问树的所有节点，但是树不像数组一样是一维结构，所以没有一种显而易见的默认顺序。因此，需要根据需要定义顺序。二叉树是指每个节点都有左子树和右子树，最多两个后代的树。二叉树的三种著名遍历顺序分别是前序遍历(preorder traverse)、中序遍历(inorder traverse)和后序遍历(postorder traverse)。它们在先访问左子树而后访问右子树方面是相同的，但是它们在何时访问根节点方面有所不同。

前序遍历首先访问树的根节点，然后按顺序访问左子树和右子树。中序遍历在左子树和右子树之间访问根节点，而后序遍历在访问左子树和右子树之后才访问根节点。

下图展示了一个二叉树的示例。如果使用前序遍历，则节点将按照顺序27、16、9、12、54、36、72进行访问。而如果使用中序遍历，则节点将按照顺序9、12、16、27、36、54、72进行访问。当使用后序遍历时，节点将按照顺序12、9、16、36、72、54、27进行访问。

假设给定了一个二叉树，已知其前序遍历和中序遍历的节点访问顺序。请编写一个程序来计算在对这棵树进行后序遍历时节点的访问顺序。

输入
输入的第一行包含测试用例的数量C（1≤C≤100）。每个测试用例由三行组成，第一行是树中节点的数量N（1≤N≤100）。然后，接下来的两行分别给出了通过前序遍历和中序遍历得到的节点访问顺序，每行包含N个整数。每个节点都有一个小于等于1000的自然数作为编号，并且在同一棵树中两个节点的编号不相同。

输出
对每个测试用例，打印一行，输出该树的后序遍历结果。

示例输入
2
7
27 16 9 12 54 36 72
9 12 16 27 36 54 72
6
409 479 10 838 150 441
409 10 479 150 838 441
示例输出
12 9 16 36 72 54 27
10 150 441 838 479 409
*/
int main()
{
    std::cout << "Hello World!\n";
}

 